home *** CD-ROM | disk | FTP | other *** search
/ Complete Linux / Complete Linux.iso / docs / apps / database / ingres04.lzh / source / h / symbol.h < prev    next >
Encoding:
C/C++ Source or Header  |  1985-04-13  |  5.0 KB  |  162 lines

  1. #
  2. /*
  3. **  SYMBOL.H -- definition of internal symbols.
  4. **
  5. **    Version:
  6. **        @(#)symbol.h    8.1    12/31/84
  7. */
  8.  
  9. # ifndef AND
  10.  
  11.  
  12.  
  13. # define    AND        'a'
  14. # define    OR        'o'
  15. # define    UOP        'U'        /* UNARY OPERATORS */
  16. # define        opPLUS        0
  17. # define        opMINUS        1
  18. # define        opNOT        2
  19. # define        opATAN        3
  20. # define        opCOS        4
  21. # define        opGAMMA        5
  22. # define        opLOG        6
  23. # define        opASCII        7
  24. # define        opSIN        8
  25. # define        opSQRT        9
  26. # define        opABS        10
  27. # define        opEXP        11
  28. # define        opINT1        12
  29. # define        opINT2        13
  30. # define        opINT4        14
  31. # define        opFLOAT4    15
  32. # define        opFLOAT8    16
  33.  
  34. # define    BOP        'B'        /* BINARY OPERATORS */
  35. # define        opADD        0
  36. # define        opSUB        1
  37. # define        opMUL        2
  38. # define        opDIV        3
  39. # define        opPOW        4
  40. # define        opEQ        5
  41. # define        opNE        6
  42. # define        opLT        7
  43. # define        opLE        8
  44. # define        opGT        9
  45. # define        opGE        10
  46. # define        opMOD        11
  47. # define        opCONCAT    12
  48.  
  49. # define    AOP        'A'        /* AGGREGATE OPERATORS */
  50. # define        opCOUNT        0
  51. # define        opCOUNTU    1
  52. # define        opSUM        2
  53. # define        opSUMU        3
  54. # define        opAVG        4
  55. # define        opAVGU        5
  56. # define        opMIN        6
  57. # define        opMAX        7
  58. # define        opANY        8
  59.  
  60. # define    COP        'C'        /* CONSTANT OPERATORS */
  61. # define        BADCOP        -1    /* error return on lookup */
  62. # define        opDBA        0
  63. # define        opUSERCODE    1
  64. # define        opDATE        2
  65. # define        opTIME        3
  66.  
  67.  
  68. # define    RESDOM        'r'        /* RESULT DOMAIN NUMBER */
  69. # define    VAR        'v'        /* VARIABLE */
  70. # define    S_VAR        's'        /* variable for which
  71.                          * a substitution has been done,                         * Only occurs in the ovqp-decomp
  72.                          * merged process.
  73.                          */
  74.  
  75. # define    QMODE        'Q'        /* QUERY MODE */
  76. # define        mdRETTERM    0    /* retrieve to terminal, used by decomp-ovqp */
  77. # define        mdRETR        1    /* retrieve, into rel perhaps */
  78. # define        mdAPP        2    /* append to rel */
  79. # define        mdREPL        3    /* replace in rel */
  80. # define        mdDEL        4    /* delete from rel */
  81. # define        mdCOPY        5    /* copy into/from rel */
  82. # define        mdCREATE    6    /* create new relation */
  83. # define        mdDESTROY    7    /* destroy old relation */
  84. # define        mdHELP        8    /* print info on relation */
  85. # define        mdINDEX        9    /* create secondary index */
  86. # define        mdMODIFY    10    /* change access structure of rel */
  87. # define        mdPRINT        11    /* print rel on terminal */
  88. # define        mdRANGE        12    /* declare range variable */
  89. # define        mdSAVE        13    /* save relation date */
  90. /*        unused            14        unused */
  91. # define        mdRET_UNI    15    /* retrieve unique */
  92. # define        mdVIEW        16    /* extra info for view def, to qrymod */
  93. # define        mdUPDATE    17    /* update processor */
  94. # define        mdRESETREL    18    /* modify to truncated */
  95. # define        mdDISPLAY    19    /* dump qm decl */
  96. # define        mdNETQRY    20    /* reserved for distr ingres */
  97. # define        mdMOVEREL    21    /* reserved for distr ingres */
  98. # define        mdPROT        22    /* extra info for permit def, to qrymod */
  99. # define        mdINTEG        23    /* extra info for integrity def, to qrymod */
  100. # define        mdDCREATE    24    /* reserved for distr ingres */
  101. # define        mdWAITQRY    25    /* reserved for distr ingres */
  102. # define        mdREMQM        26    /* remove permit integrity definition */
  103. # define        mdDISTRIB    27    /* reserved for distr ingres */
  104. # define        mdKSORT        28    /* ksort function */
  105. # define        mdSYSFUNC    29    /* sysmod routine */
  106. # define        mdSTOP        30    /* extra info for Heidi */
  107.  
  108. /* special modes used only for control module communication */
  109. # define        mdQRY        1    /* general query call */
  110. # define        mdDECOMP    2    /* call decomp */
  111. # define        mdPARSER    3    /* parser module */
  112.  
  113. # define    ROOT        'R'        /* ROOT of QUERY TREE */
  114. # define    QLEND        'q'        /* NULL branch at end of QUAL */
  115. # define    TREE        'T'        /* SIGNALS BEGINNING of TREE */
  116. # define    BYHEAD        'H'        /* BY LIST HEAD */
  117. # define    AGHEAD        'h'        /* AGGREGATE HEAD */
  118.  
  119. # define    SITE        'S'        /* reserved for distr ingres */
  120.  
  121. # define    INT        'i'        /* INTEGER CONSTANT */
  122. # define    FLOAT        'f'        /* FLOATING POINT CONSTANT */
  123. # define    CHAR        'c'        /* CHARACTER CONSTANT */
  124. # define    BINARY        'b'        /* BINARY CONSTANT (used in printup */
  125. # define    TUPLE        't'        /* TUPLE (used in ctlmod) */
  126.  
  127.  
  128. # define    RESULTVAR    '='        /* RESULT RELATION VAR NO. */
  129. # define    SOURCEID    '<'        /* SOURCE RELATION NAME(S) */
  130. # define    RESULTID    '>'        /* RESULT RELATION NAME    */
  131.  
  132.  
  133.  
  134.  
  135. # define    CHANGESTRAT    'g'    /* FOR OVQP TO DEVISE NEW STRATEGY */
  136. # define    USERQRY        'u'    /* Tells OVQP result rel is a user rel */
  137. # define    EXIT        'x'    /* tells OVQP that query is done */
  138. # define        ACK    1    /* OVQP should write an acknowledging EOP */
  139. # define        NOACK    2    /* OVQP should not acknowledge */
  140. # define        RUBACK    3    /* internal mode for DECOMP */
  141. # define    REOPENRES    'O'    /* OVQP should reopen result relation */
  142. # define    RETVAL        'V'        /* RETURN FROM OVQP */
  143. # define        UPDATE        -3    /* tells DECOMP to call update */
  144. # define        NOUPDATE    -2    /* tells DECOMP not to call update */
  145. # define        EMPTY        -1
  146. # define        NONEMPTY    0
  147. # define    EOTUP        'Z'        /* end of tuple symbol send by OVQP to equel */
  148.  
  149. /*    The following are pattern matching symbols used by ovqp */
  150. # define    PAT_ANY        1        /* matches 0 or more char */
  151. # define    PAT_ONE        2        /* matches any one char */
  152. # define    PAT_LBRAC    3        /* left bracket for char groupings */
  153. # define    PAT_RBRAC    4        /* right bracket for char groupings */
  154. # define    PAT_GLOB    5        /* indicates global string matching */
  155. # define    PAT_SPEC    6        /* matches 0 or more char and indexes them */
  156.  
  157. /*    The following are interval delimiter types used by ovqp  */
  158. # define    OPEN        0
  159. # define    CLOSED        1
  160.  
  161. # endif AND
  162.